package com.ibeeking.gmc.global.g.rest.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ibeeking.found.common.entity.TimeTaskDTO;
import com.ibeeking.gmc.global.service.common.dos.TimeTaskDO;
import com.ibeeking.gmc.global.service.common.param.TimeTaskParam;
import com.ibeeking.gmc.global.service.common.query.TimeTaskPageQuery;
import com.ibeeking.gmc.global.service.common.query.TimeTaskQuery;
import com.ibeeking.gmc.global.service.common.vo.TaskJobTypeVO;
import com.ibeeking.gmc.global.service.common.vo.TimeTaskVO;

import java.util.List;

public interface ITimeTaskService extends IService<TimeTaskDO> {


    /**
     * 添加定时任务模板
     * @param param
     * @return
     */
    Boolean add(TimeTaskParam param);

    /**
     * 修改定时任务模板
     * @param param
     * @return
     */
    Boolean modify(TimeTaskParam param);

    /**
     * 根据id删除定时任务模板
     * @param id
     * @return
     */
    Boolean del(Long id);

    /**
     * 根据id查看详情
     * @param id
     * @return
     */
    TimeTaskVO view(Long id);

    /**
     * 根据id查看详情
     * @param id
     * @return
     */
    TimeTaskDTO queryTimeTaskById(Long id);

    /**
     * 根据查看详情
     * @param handler
     * @return
     */
    TimeTaskDTO queryTimeTaskByIndustryAndHandler(String industry, String handler);

    /**
     * 分页条件查询
     * @param pageQuery
     * @return
     */
    Page<TimeTaskVO> pageList(TimeTaskPageQuery pageQuery);

    /***
     * 查询列表
     */
    List<TimeTaskVO> list(TimeTaskQuery query);

    /***
     * 查询列表
     */
    List<TimeTaskVO> listByIndustry(String industry);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long tenantId, Integer status);

    /***
     * 查询任务类型，1-一次性任务，2-长久性任务
     */
    List<TaskJobTypeVO> taskJobType();

}
